﻿using System;
using System.IO;
using Styx;
using Styx.Helpers;

namespace MIBPriest
{
    public class MIBSettings : Settings
    {
        public static readonly MIBSettings Instance = new MIBSettings();

        public MIBSettings()
            : base(
                Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                             string.Format(
                                 @"Routines/MIBPriest/MIBPriest-Settings-{0}.xml",
                                 StyxWoW.Me.Name)))
        {
        }

        [Setting, DefaultValue(true)]
        public bool Cascade { get; set; }
        
        [Setting, DefaultValue(30)]
        public int DesperatePrayer { get; set; }

        [Setting, DefaultValue(true)]
        public bool DevouringPlague { get; set; }

        [Setting, DefaultValue(10)]
        public int DispersionMana { get; set; }
        
        [Setting, DefaultValue(20)]
        public int DispersionHP { get; set; }

        [Setting, DefaultValue(true)]
        public bool FaceAuto { get; set; }

        [Setting, DefaultValue(true)]
        public bool FadeAuto { get; set; }

        [Setting, DefaultValue(true)]
        public bool HaloSafeCheck { get; set; }
        
        [Setting, DefaultValue(22)]
        public int HaloMin { get; set; }

        [Setting, DefaultValue(28)]
        public int HaloMax { get; set; }

        [Setting, DefaultValue(40)]
        public int HealthstonePercent { get; set; }

        [Setting, DefaultValue(true)]
        public bool InnerFire { get; set; }

        [Setting, DefaultValue(true)]
        public bool MindBlast { get; set; }

        [Setting, DefaultValue(true)]
        public bool MindFlay { get; set; }

        [Setting, DefaultValue(2000)]
        public int MindFlayDuration { get; set; }

        [Setting, DefaultValue(1000)]
        public int MindSearClipping { get; set; }

        [Setting, DefaultValue(5)]
        public int MindSearStartonUnit { get; set; }

        [Setting, DefaultValue(true)]
        public bool MindSpike { get; set; }

        [Setting, DefaultValue(true)]
        public bool PowerWordFortitude { get; set; }

        [Setting, DefaultValue(true)]
        public bool PowerWordShield { get; set; }

        [Setting, DefaultValue(true)]
        public bool ShadowfiendAuto { get; set; }

        [Setting, DefaultValue(true)]
        public bool Shadowform { get; set; }

        [Setting, DefaultValue(true)]
        public bool SWD { get; set; }

        [Setting, DefaultValue(60)]
        public int ManaSWP { get; set; }

        [Setting, DefaultValue(40)]
        public int ManaSWS { get; set; }


        [Setting, DefaultValue(3000)]
        public int SWPRefresh { get; set; }

        [Setting, DefaultValue(70)]
        public int VampiricEmbracePercent { get; set; }

        [Setting, DefaultValue(3000)]
        public int VampiricTouchRefresh { get; set; }

        [Setting, DefaultValue(16)]
        public int SPauseKey { get; set; }

        [Setting, DefaultValue(false)]
        public bool SPause { get; set; }

        [Setting, DefaultValue(true)]
        public bool SAOE { get; set; }

        [Setting, DefaultValue(1)]
        public int SAOEKey { get; set; }

        [Setting, DefaultValue(true)]
        public bool SHalo { get; set; }

        [Setting, DefaultValue(8)]
        public int SHaloKey { get; set; }

        [Setting, DefaultValue(true)]
        public bool SModeNormal { get; set; }

        [Setting, DefaultValue(18)]
        public int SModeKey { get; set; }
    }
}